|
Pro ENGINEER : Attributfeld mit Text und reelem Maß füttern
NicoFTB am 21.10.2013 um 10:29 Uhr (1)
Die ganzen IF-Bedingungen sind nicht schön, da habe ich mir mal was einfallen lassen.Code:DBL = 100.1001000FORMAT = "0,000000" /* Format 0,000 (Führende Null, Trennzeichen plus Nachkommastellen in Nullen)/* FormatierungSTRING = ITOS(FLOOR(DBL))IF string_length(STRING) == 0 STRING = "0"ENDIFDBL_NACHKOMMA =(DBL - FLOOR(DBL))*10^(string_length(FORMAT)-2)STRING = STRING + Extract(FORMAT, 2, (string_length(FORMAT)-1)-string_length(itos(DBL_NACHKOMMA))) + ITOS((DBL - FLOOR(DBL))*10^(string_length(FORMAT)-2))/* E ...
|
In das Form Pro ENGINEER wechseln |
|
Pro ENGINEER : Attributfeld mit Text und reelem Maß füttern
NicoFTB am 18.10.2013 um 07:53 Uhr (1)
In meine Signatur steht ein wenig was über Beziehungen. Du musst zunächst deine reele Zahl in einen String umwandeln. Das geht über itos(d5), heißt soviel wie integer to string. Und das ist hier auch nicht ganz so einfach, da halt ein Integer gewandelt wird und kein Double. Also werden die Kommastellen abgeschnitten.Im Forum solltest du ähnliches finden bei Masse/Gewicht-Berechnung. zB hier------------------GrüßeNico o/Üs - ProE-Beziehungen
|
In das Form Pro ENGINEER wechseln |
|
Pro ENGINEER : Wert runden mit floor, ceil und itos
NicoFTB am 27.01.2014 um 13:27 Uhr (1)
Deine Formel solltest nochmal genau begutachten. Da tauschst du ja Birnen und Äpfel gegen Bananen.Hier mal meine Lösung:[Beziehung "Nach Regenerierung"]MASS = PRO_MP_MASS*1000 WEIGHT = itos(floor(MASS))if string_length(WEIGHT) == 0 WEIGHT = "0"endifWEIGHT= WEIGHT+ extract("0,000", 2, 4 - string_length(itos((MASS - floor(MASS))*10^3))) + itos((MASS - FLOOR(MASS))*10^3)------------------GrüßeNico o/Üs - ProE-Beziehungen[Diese Nachricht wurde von NicoFTB am 27. Jan. 2014 editiert.]
|
In das Form Pro ENGINEER wechseln |
|
Pro ENGINEER : Attributfeld mit Text und reelem Maß füttern
NicoFTB am 18.10.2013 um 13:31 Uhr (1)
Siehe mein erster Post.Zitat:Original erstellt von NicoFTB:zB hierAngepasst schaut das in etwa so aus:Code:TEMP_LAENGE = d5LAENGE = ITOS(FLOOR(TEMP_LAENGE))IF LAENGE == "" LAENGE = "0"ENDIF IF ((TEMP_LAENGE - FLOOR(TEMP_LAENGE))*1000) 1000 LAENGE = LAENGE + "," ENDIF IF ((TEMP_LAENGE - FLOOR(TEMP_LAENGE))*1000) 100 LAENGE = LAENGE + "0" ENDIF IF ((TEMP_LAENGE - FLOOR(TEMP_LAENGE))*1000) 10 LAENGE = LAENGE + "0" ENDIFLAENGE = LAENGE + ITOS((TEMP_LAENGE - FLOOR(TEMP_LAENGE))*1000)Bemerkung = "Länge: " ...
|
In das Form Pro ENGINEER wechseln |
|
Pro ENGINEER : Reele Zahl in Zeichenkette konvertiere
NicoFTB am 20.09.2013 um 07:45 Uhr (1)
Moin,die Lösung von k.reichert habe ich schon länger mal auf dem Rechner gespeichert. Leider ist das Ding nur ein wenig overkill. Mehr als 3 Nachkommastellen sind zum einen selten nötig, wobei das ja auch schnell umzusetzen ist mit der Beziehung oben, aber was mich am meisten stört sind die vielen Parameter die dadurch erzeugt werden. Daher mal meine Lösung:Code:MASSE = CEIL(PRO_MP_MASS*1000,3)GEWICHT = ITOS(FLOOR(MASSE))IF GEWICHT == "" GEWICHT = "0"ENDIF IF ((MASSE - FLOOR(MASSE))*1000) 1000 GEWICH ...
|
In das Form Pro ENGINEER wechseln |
|
Pro ENGINEER : Wert runden mit floor, ceil und itos
NicoFTB am 27.01.2014 um 14:07 Uhr (1)
Zitat:Original erstellt von U_Suess:Solche Informationen sollte man vielleicht gleich mit angeben. Nicht jeder Anwender kennt sich damit gut genug aus, um solche Stolpersteine zu umgehen.Zitat:Original erstellt von NicoFTB:...[Beziehung "Nach Regenerierung"]...Steht doch da... *duckundweg*------------------GrüßeNico o/Üs - ProE-Beziehungen
|
In das Form Pro ENGINEER wechseln |